#include "gdkmacosglcontext-private.h"
#include "gdkmacossurface-private.h"
+#include "gdkmacostoplevelsurface-private.h"
#include "gdkinternals.h"
#include "gdkintl.h"
GdkGLContext *shared_data;
GdkGLContext *existing;
GLint sync_to_framerate = 1;
- GLint opaque = 0;
GLint validate = 0;
int major, minor;
}
[gl_context setValues:&sync_to_framerate forParameter:NSOpenGLCPSwapInterval];
- [gl_context setValues:&opaque forParameter:NSOpenGLCPSurfaceOpacity];
[gl_context setValues:&validate forParameter:NSOpenGLContextParameterStateValidation];
self->dummy_window = [[NSWindow alloc] initWithContentRect:NSZeroRect
if (self->needs_resize)
{
+ GdkSurface *surface = gdk_draw_context_get_surface (context);
+ GLint opaque;
+
self->needs_resize = FALSE;
if (self->dummy_view != NULL)
[self->dummy_view setFrame:frame];
}
+ /* Possibly update our opaque setting depending on a resize. We can
+ * rely on getting a resize if decoarated is changed, so this reduces
+ * how much we adjust the parameter.
+ */
+ if (GDK_IS_MACOS_TOPLEVEL_SURFACE (surface))
+ opaque = GDK_MACOS_TOPLEVEL_SURFACE (surface)->decorated;
+ else
+ opaque = FALSE;
+ [self->gl_context setValues:&opaque forParameter:NSOpenGLCPSurfaceOpacity];
+
[self->gl_context update];
}
G_BEGIN_DECLS
-typedef struct _GdkMacosToplevelSurface GdkMacosToplevelSurface;
-typedef struct _GdkMacosToplevelSurfaceClass GdkMacosToplevelSurfaceClass;
-
#define GDK_TYPE_MACOS_TOPLEVEL_SURFACE (_gdk_macos_toplevel_surface_get_type())
#define GDK_MACOS_TOPLEVEL_SURFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_MACOS_TOPLEVEL_SURFACE, GdkMacosToplevelSurface))
#define GDK_IS_MACOS_TOPLEVEL_SURFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_MACOS_TOPLEVEL_SURFACE))
+typedef struct _GdkMacosToplevelSurface GdkMacosToplevelSurface;
+typedef struct _GdkMacosToplevelSurfaceClass GdkMacosToplevelSurfaceClass;
+
+struct _GdkMacosToplevelSurface
+{
+ GdkMacosSurface parent_instance;
+ guint decorated : 1;
+};
+
+struct _GdkMacosToplevelSurfaceClass
+{
+ GdkMacosSurfaceClass parent_instance;
+};
+
GType _gdk_macos_toplevel_surface_get_type (void);
GdkMacosSurface *_gdk_macos_toplevel_surface_new (GdkMacosDisplay *display,
GdkSurface *parent,
#include "gdkmacostoplevelsurface-private.h"
#include "gdkmacosutils-private.h"
-struct _GdkMacosToplevelSurface
-{
- GdkMacosSurface parent_instance;
- guint decorated : 1;
-};
-
-struct _GdkMacosToplevelSurfaceClass
-{
- GdkMacosSurfaceClass parent_instance;
-};
-
static void
_gdk_macos_toplevel_surface_fullscreen (GdkMacosToplevelSurface *self)
{